#include <stdio.h>
#include <string.h>
#include <math.h>

	double	bd[5005][2];
	long	n;
	long	Ncase;
	long	f[1000001];
	double	h;

main()
{
	long	i,j,k,ct,st,t,endn,stn,maxdis,H,x;
	long	can;


	scanf("%ld\n",&Ncase);
	for (ct=1;ct<=Ncase;ct++)
	{
		scanf("%ld",&n);
		for (i=1;i<=n;i++)
		{
			scanf("%lf%lf",&(bd[i][0]),&(bd[i][1]));
		}
		memset(f,0,sizeof(f));
		h=bd[1][1];
		stn=long(bd[1][0]);
		endn=long(bd[n][0]);
		f[stn]=1;
		st=1;


		for (i=2;i<=n;i++)
		{
			H=bd[i][1];
			maxdis=long(sqrt((H+H-h)*h));
			for (j=bd[i][0]-maxdis;j<=bd[i][0];j++)
				if (j>=0 && f[j]>0)
				{
					k=bd[i][0]+(bd[i][0]-j);
					if (k>endn) k=endn;
					if (f[k]==0 || f[k]>f[j]+1)
					{
						f[k]=f[j]+1;
					}
				}
		}
		printf("%ld\n",f[endn]-1);
	}
	return 0;
}
